<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang='en' xml:lang='en' xmlns='http://www.w3.org/1999/xhtml'><head><title>app/controllers/users_controller.rb - C0 code coverage information</title>
    <style type='text/css'>body { background-color: rgb(240, 240, 245); }</style>
    <style type='text/css'>span.cross-ref-title {
 font-size: 140%;
}
span.cross-ref a {
 text-decoration: none;
}
span.cross-ref {
 background-color:#f3f7fa;
 border: 1px dashed #333;
 margin: 1em;
 padding: 0.5em;
 overflow: hidden;
}
a.crossref-toggle {
 text-decoration: none;
}
span.marked0 {
 background-color: rgb(185, 210, 200);
 display: block;
}
span.marked1 {
 background-color: rgb(190, 215, 205);
 display: block;
}
span.inferred0 {
 background-color: rgb(255, 255, 240);
 display: block;
}
span.inferred1 {
 background-color: rgb(255, 255, 240);
 display: block;
}
span.uncovered0 {
 background-color: rgb(225, 110, 110);
 display: block;
}
span.uncovered1 {
 background-color: rgb(235, 120, 120);
 display: block;
}
span.overview {
 border-bottom: 8px solid black;
}
div.overview {
 border-bottom: 8px solid black;
}
body {
 font-family: verdana, arial, helvetica;
}
div.footer {
 font-size: 68%;
 margin-top: 1.5em;
}
h1, h2, h3, h4, h5, h6 {
 margin-bottom: 0.5em;
}
h5 {
 margin-top: 0.5em;
}
.hidden {
 display: none;
}
div.separator {
 height: 10px;
}
/* Commented out for better readability, esp. on IE */
/*
table tr td, table tr th {
 font-size: 68%;
}
td.value table tr td {
 font-size: 11px;
}
*/
table.percent_graph {
 height: 12px;
 border: #808080 1px solid;
 empty-cells: show;
}
table.percent_graph td.covered {
 height: 10px;
 background: #00f000;
}
table.percent_graph td.uncovered {
 height: 10px;
 background: #e00000;
}
table.percent_graph td.NA {
 height: 10px;
 background: #eaeaea;
}
table.report {
 border-collapse: collapse;
 width: 100%;
}
table.report td.heading {
 background: #dcecff;
 border: #d0d0d0 1px solid;
 font-weight: bold;
 text-align: center;
}
table.report td.heading:hover {
 background: #c0ffc0;
}
table.report td.text {
 border: #d0d0d0 1px solid;
}
table.report td.value,
table.report td.lines_total,
table.report td.lines_code {
 text-align: right;
 border: #d0d0d0 1px solid;
}
table.report tr.light {
 background-color: rgb(240, 240, 245);
}
table.report tr.dark {
 background-color: rgb(230, 230, 235);
}
</style>
    <script type='text/javascript'>
// <![CDATA[
  function toggleCode( id ) {
    if ( document.getElementById )
      elem = document.getElementById( id );
    else if ( document.all )
      elem = eval( "document.all." + id );
    else
      return false;

    elemStyle = elem.style;

    if ( elemStyle.display != "block" ) {
      elemStyle.display = "block"
    } else {
      elemStyle.display = "none"
    }

    return true;
  }

  // Make cross-references hidden by default
  document.writeln( "<style type=\"text/css\">span.cross-ref { display: none }</style>" )
  // ]]>
</script>
    <style type='text/css'>span.run0 {
  background-color: rgb(178, 204, 255);
  display: block;
}
span.run1 {
  background-color: rgb(178, 206, 255);
  display: block;
}
span.run2 {
  background-color: rgb(178, 209, 255);
  display: block;
}
span.run3 {
  background-color: rgb(178, 211, 255);
  display: block;
}
span.run4 {
  background-color: rgb(178, 214, 255);
  display: block;
}
span.run5 {
  background-color: rgb(178, 218, 255);
  display: block;
}
span.run6 {
  background-color: rgb(178, 220, 255);
  display: block;
}
span.run7 {
  background-color: rgb(178, 223, 255);
  display: block;
}
span.run8 {
  background-color: rgb(178, 225, 255);
  display: block;
}
span.run9 {
  background-color: rgb(178, 228, 255);
  display: block;
}
span.run10 {
  background-color: rgb(178, 232, 255);
  display: block;
}
span.run11 {
  background-color: rgb(178, 234, 255);
  display: block;
}
span.run12 {
  background-color: rgb(178, 237, 255);
  display: block;
}
span.run13 {
  background-color: rgb(178, 239, 255);
  display: block;
}
span.run14 {
  background-color: rgb(178, 242, 255);
  display: block;
}
span.run15 {
  background-color: rgb(178, 246, 255);
  display: block;
}
span.run16 {
  background-color: rgb(178, 248, 255);
  display: block;
}
span.run17 {
  background-color: rgb(178, 251, 255);
  display: block;
}
span.run18 {
  background-color: rgb(178, 253, 255);
  display: block;
}
span.run19 {
  background-color: rgb(178, 255, 253);
  display: block;
}
span.run20 {
  background-color: rgb(178, 255, 249);
  display: block;
}
span.run21 {
  background-color: rgb(178, 255, 247);
  display: block;
}
span.run22 {
  background-color: rgb(178, 255, 244);
  display: block;
}
span.run23 {
  background-color: rgb(178, 255, 242);
  display: block;
}
span.run24 {
  background-color: rgb(178, 255, 239);
  display: block;
}
span.run25 {
  background-color: rgb(178, 255, 235);
  display: block;
}
span.run26 {
  background-color: rgb(178, 255, 233);
  display: block;
}
span.run27 {
  background-color: rgb(178, 255, 230);
  display: block;
}
span.run28 {
  background-color: rgb(178, 255, 228);
  display: block;
}
span.run29 {
  background-color: rgb(178, 255, 225);
  display: block;
}
span.run30 {
  background-color: rgb(178, 255, 221);
  display: block;
}
span.run31 {
  background-color: rgb(178, 255, 219);
  display: block;
}
span.run32 {
  background-color: rgb(178, 255, 216);
  display: block;
}
span.run33 {
  background-color: rgb(178, 255, 214);
  display: block;
}
span.run34 {
  background-color: rgb(178, 255, 211);
  display: block;
}
span.run35 {
  background-color: rgb(178, 255, 207);
  display: block;
}
span.run36 {
  background-color: rgb(178, 255, 205);
  display: block;
}
span.run37 {
  background-color: rgb(178, 255, 202);
  display: block;
}
span.run38 {
  background-color: rgb(178, 255, 200);
  display: block;
}
span.run39 {
  background-color: rgb(178, 255, 197);
  display: block;
}
span.run40 {
  background-color: rgb(178, 255, 193);
  display: block;
}
span.run41 {
  background-color: rgb(178, 255, 191);
  display: block;
}
span.run42 {
  background-color: rgb(178, 255, 188);
  display: block;
}
span.run43 {
  background-color: rgb(178, 255, 186);
  display: block;
}
span.run44 {
  background-color: rgb(178, 255, 183);
  display: block;
}
span.run45 {
  background-color: rgb(178, 255, 179);
  display: block;
}
span.run46 {
  background-color: rgb(179, 255, 178);
  display: block;
}
span.run47 {
  background-color: rgb(182, 255, 178);
  display: block;
}
span.run48 {
  background-color: rgb(184, 255, 178);
  display: block;
}
span.run49 {
  background-color: rgb(187, 255, 178);
  display: block;
}
span.run50 {
  background-color: rgb(191, 255, 178);
  display: block;
}
span.run51 {
  background-color: rgb(193, 255, 178);
  display: block;
}
span.run52 {
  background-color: rgb(196, 255, 178);
  display: block;
}
span.run53 {
  background-color: rgb(198, 255, 178);
  display: block;
}
span.run54 {
  background-color: rgb(201, 255, 178);
  display: block;
}
span.run55 {
  background-color: rgb(205, 255, 178);
  display: block;
}
span.run56 {
  background-color: rgb(207, 255, 178);
  display: block;
}
span.run57 {
  background-color: rgb(210, 255, 178);
  display: block;
}
span.run58 {
  background-color: rgb(212, 255, 178);
  display: block;
}
span.run59 {
  background-color: rgb(215, 255, 178);
  display: block;
}
span.run60 {
  background-color: rgb(219, 255, 178);
  display: block;
}
span.run61 {
  background-color: rgb(221, 255, 178);
  display: block;
}
span.run62 {
  background-color: rgb(224, 255, 178);
  display: block;
}
span.run63 {
  background-color: rgb(226, 255, 178);
  display: block;
}
span.run64 {
  background-color: rgb(229, 255, 178);
  display: block;
}
span.run65 {
  background-color: rgb(233, 255, 178);
  display: block;
}
span.run66 {
  background-color: rgb(235, 255, 178);
  display: block;
}
span.run67 {
  background-color: rgb(238, 255, 178);
  display: block;
}
span.run68 {
  background-color: rgb(240, 255, 178);
  display: block;
}
span.run69 {
  background-color: rgb(243, 255, 178);
  display: block;
}
span.run70 {
  background-color: rgb(247, 255, 178);
  display: block;
}
span.run71 {
  background-color: rgb(249, 255, 178);
  display: block;
}
span.run72 {
  background-color: rgb(252, 255, 178);
  display: block;
}
span.run73 {
  background-color: rgb(255, 255, 178);
  display: block;
}
span.run74 {
  background-color: rgb(255, 252, 178);
  display: block;
}
span.run75 {
  background-color: rgb(255, 248, 178);
  display: block;
}
span.run76 {
  background-color: rgb(255, 246, 178);
  display: block;
}
span.run77 {
  background-color: rgb(255, 243, 178);
  display: block;
}
span.run78 {
  background-color: rgb(255, 240, 178);
  display: block;
}
span.run79 {
  background-color: rgb(255, 238, 178);
  display: block;
}
span.run80 {
  background-color: rgb(255, 234, 178);
  display: block;
}
span.run81 {
  background-color: rgb(255, 232, 178);
  display: block;
}
span.run82 {
  background-color: rgb(255, 229, 178);
  display: block;
}
span.run83 {
  background-color: rgb(255, 226, 178);
  display: block;
}
span.run84 {
  background-color: rgb(255, 224, 178);
  display: block;
}
span.run85 {
  background-color: rgb(255, 220, 178);
  display: block;
}
span.run86 {
  background-color: rgb(255, 218, 178);
  display: block;
}
span.run87 {
  background-color: rgb(255, 215, 178);
  display: block;
}
span.run88 {
  background-color: rgb(255, 212, 178);
  display: block;
}
span.run89 {
  background-color: rgb(255, 210, 178);
  display: block;
}
span.run90 {
  background-color: rgb(255, 206, 178);
  display: block;
}
span.run91 {
  background-color: rgb(255, 204, 178);
  display: block;
}
span.run92 {
  background-color: rgb(255, 201, 178);
  display: block;
}
span.run93 {
  background-color: rgb(255, 198, 178);
  display: block;
}
span.run94 {
  background-color: rgb(255, 196, 178);
  display: block;
}
span.run95 {
  background-color: rgb(255, 192, 178);
  display: block;
}
span.run96 {
  background-color: rgb(255, 189, 178);
  display: block;
}
span.run97 {
  background-color: rgb(255, 187, 178);
  display: block;
}
span.run98 {
  background-color: rgb(255, 184, 178);
  display: block;
}
span.run99 {
  background-color: rgb(255, 182, 178);
  display: block;
}
span.run100 {
  background-color: rgb(255, 178, 178);
  display: block;
}
</style>
    </head>
  <body><h3>C0 code coverage information</h3>
    <p>Generated on Sun Dec 07 18:01:49 -0800 2008 with <a href='http://github.com/spicycode/rcov'>rcov 0.8.1.5</a>
      </p>
    <hr/>
    <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
</span><span class='marked1'>and this: this line is also marked as covered.
</span><span class='inferred0'>Lines considered as run by rcov, but not reported by Ruby, look like this,
</span><span class='inferred1'>and this: these lines were inferred by rcov (using simple heuristics).
</span><span class='uncovered0'>Finally, here&apos;s a line marked as not executed.
</span></pre>
<table class='report'><thead><tr><td class='heading'>Name</td>
      <td class='heading'>Total lines</td>
      <td class='heading'>Lines of code</td>
      <td class='heading'>Total coverage</td>
      <td class='heading'>Code coverage</td>
      </tr>
    </thead>
  <tbody><tr class='light'><td><a href='app-controllers-users_controller_rb.html'>app/controllers/users_controller.rb</a>
        </td>
      <td class='lines_total'><tt>70</tt>
        </td>
      <td class='lines_code'><tt>56</tt>
        </td>
      <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>60.0%</tt>
              &nbsp;</td>
            <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='60'/>
                  <td class='uncovered' width='40'/>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </td>
      <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>50.0%</tt>
              &nbsp;</td>
            <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='50'/>
                  <td class='uncovered' width='50'/>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </td>
      </tr>
    </tbody>
  </table>
<pre><span class="marked0"><a name="line1"></a> 1 class UsersController &lt; ApplicationController
</span><span class="marked1"><a name="line2"></a> 2   before_filter :check_root,      :only =&gt; [:make_moderator, :remove_moderator]
</span><span class="inferred0"><a name="line3"></a> 3   
</span><span class="marked1"><a name="line4"></a> 4   after_filter  :store_location,  :only =&gt; [:show]
</span><span class="inferred0"><a name="line5"></a> 5   
</span><span class="inferred1"><a name="line6"></a> 6   # render new.rhtml
</span><span class="marked0"><a name="line7"></a> 7   def new
</span><span class="marked1"><a name="line8"></a> 8     @user = User.new
</span><span class="marked0"><a name="line9"></a> 9   end
</span><span class="inferred1"><a name="line10"></a>10   
</span><span class="marked0"><a name="line11"></a>11   def index
</span><span class="uncovered1"><a name="line12"></a>12     @users = User.find(:all)
</span><span class="uncovered0"><a name="line13"></a>13   end
</span><span class="inferred1"><a name="line14"></a>14   
</span><span class="marked0"><a name="line15"></a>15   def make_moderator
</span><span class="inferred1"><a name="line16"></a>16     @user = User.find(params[:id])
</span><span class="uncovered0"><a name="line17"></a>17     @user.moderator = true
</span><span class="uncovered1"><a name="line18"></a>18     if @user.save
</span><span class="uncovered0"><a name="line19"></a>19       flash[:notice] = &quot;#{@user.login} is now a moderator.&quot;
</span><span class="uncovered1"><a name="line20"></a>20       redirect_back_or_default(user_url(@user))
</span><span class="uncovered0"><a name="line21"></a>21     else
</span><span class="uncovered1"><a name="line22"></a>22       flash[:notice] = &quot;Didn't work.&quot;
</span><span class="uncovered0"><a name="line23"></a>23       redirect_back_or_default(user_url(@user))
</span><span class="uncovered1"><a name="line24"></a>24     end
</span><span class="uncovered0"><a name="line25"></a>25   end
</span><span class="inferred1"><a name="line26"></a>26   
</span><span class="marked0"><a name="line27"></a>27   def remove_moderator
</span><span class="inferred1"><a name="line28"></a>28     @user = User.find(params[:id])
</span><span class="uncovered0"><a name="line29"></a>29     @user.moderator = false
</span><span class="uncovered1"><a name="line30"></a>30     if @user.save
</span><span class="uncovered0"><a name="line31"></a>31       flash[:notice] = &quot;#{@user.login} is not a moderator.&quot;
</span><span class="uncovered1"><a name="line32"></a>32       redirect_back_or_default(user_url(@user))
</span><span class="uncovered0"><a name="line33"></a>33     else
</span><span class="uncovered1"><a name="line34"></a>34       flash[:notice] = &quot;Didn't work.&quot;
</span><span class="uncovered0"><a name="line35"></a>35       redirect_back_or_default(user_url(@user))
</span><span class="uncovered1"><a name="line36"></a>36     end
</span><span class="uncovered0"><a name="line37"></a>37   end
</span><span class="inferred1"><a name="line38"></a>38     
</span><span class="marked0"><a name="line39"></a>39   def show
</span><span class="uncovered1"><a name="line40"></a>40     @user = User.find(params[:id])
</span><span class="uncovered0"><a name="line41"></a>41   end
</span><span class="inferred1"><a name="line42"></a>42  
</span><span class="marked0"><a name="line43"></a>43   def create
</span><span class="marked1"><a name="line44"></a>44     logout_keeping_session!
</span><span class="marked0"><a name="line45"></a>45     @user = User.new(params[:user])
</span><span class="marked1"><a name="line46"></a>46     @user.moderator = true if @user.login.eql?(&quot;root&quot;)
</span><span class="marked0"><a name="line47"></a>47     success = @user &amp;&amp; @user.save
</span><span class="marked1"><a name="line48"></a>48     if success &amp;&amp; @user.errors.empty?
</span><span class="inferred0"><a name="line49"></a>49       # Protects against session fixation attacks, causes request forgery
</span><span class="inferred1"><a name="line50"></a>50       # protection if visitor resubmits an earlier form using back
</span><span class="inferred0"><a name="line51"></a>51       # button. Uncomment if you understand the tradeoffs.
</span><span class="inferred1"><a name="line52"></a>52       # reset session
</span><span class="marked0"><a name="line53"></a>53       self.current_user = @user # !! now logged in
</span><span class="marked1"><a name="line54"></a>54       redirect_back_or_default('/')
</span><span class="marked0"><a name="line55"></a>55       flash[:notice] = &quot;Thanks for signing up!&quot;
</span><span class="inferred1"><a name="line56"></a>56     else
</span><span class="marked0"><a name="line57"></a>57       flash[:error]  = &quot;We couldn't set up that account, sorry.  Please try again, or contact an admin (link is above).&quot;
</span><span class="marked1"><a name="line58"></a>58       render :action =&gt; 'new'
</span><span class="inferred0"><a name="line59"></a>59     end
</span><span class="inferred1"><a name="line60"></a>60   end
</span><span class="inferred0"><a name="line61"></a>61   
</span><span class="marked1"><a name="line62"></a>62   protected
</span><span class="inferred0"><a name="line63"></a>63   
</span><span class="marked1"><a name="line64"></a>64   def check_root
</span><span class="uncovered0"><a name="line65"></a>65     if !(logged_in? &amp;&amp; current_user.login.eql?(&quot;root&quot;))
</span><span class="uncovered1"><a name="line66"></a>66       flash[:notice] = &quot;You can't do that.&quot;
</span><span class="uncovered0"><a name="line67"></a>67       redirect_back_or_default('/')
</span><span class="uncovered1"><a name="line68"></a>68     end
</span><span class="uncovered0"><a name="line69"></a>69   end
</span><span class="uncovered1"><a name="line70"></a>70 end
</span></pre><hr/>
    <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
   version 0.8.1.5.</p>
<p><a href='http://validator.w3.org/check/referer'><img src='http://www.w3.org/Icons/valid-xhtml10' height='31' alt='Valid XHTML 1.0!' width='88'/>
        </a>
      <a href='http://jigsaw.w3.org/css-validator/check/referer'><img src='http://jigsaw.w3.org/css-validator/images/vcss' alt='Valid CSS!' style='border:0;width:88px;height:31px'/>
        </a>
      </p>
    </body>
  </html>
